/**
 * 
 */
package edu.isistan.genetic.operators;
import java.util.Vector;

import edu.isistan.metamodel.*;
/**
 * @author marcos.trotti
 *
 */
public interface Operator {
	
	/**
	 * Dado un tipo de dato verifica si es compatible el operador
	 * El operador es compatible si realiza una transformación válida
	 * @param aDataType
	 * @return if compatible true, else false 
	 */
	public boolean isCompatible(DataType aDataType);
	
	public boolean isEncapsulationCompatible();
	/**
	 * 
	 * @param aDataType
	 * @return DataType compatible con aDataType
	 */
	public Vector<DataType> mutate(Vector<DataType> aDataTypes);
}
